V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  DOLLOR  ›  全部回复第 6 页 / 共 153 页
回复总数  3057
1 ... 2  3  4  5  6  7  8  9  10  11 ... 153  
TS 检查对象属性的时候,只会对多余的*字面量*( literal )属性报错。对于*非字面量*对象,以及*非字面量*属性,会按照*协变*规则判断类型是否符合规则。
原问题里的`yyy${s}`属于计算属性,它就相当于一个*多出来*的属性,并且不是字面量,所以不会报错。

let a: { a: number } = { a: 1 }
a = { a: 1, b: 2 } //字面量多了个 b ,报错

let ab: { a: number, b: number } = { a: 1, b: 2 }
a = ab //非字面量赋值,虽然多了个 b ,但符合协变规则,不报错

a = { a: 1, [Math.random()]: 6 } //虽然多了个属性,但它不是字面量,所以不报错
94 天前
回复了 goldenhover 创建的主题 浏览器 edge 浏览器每次更新都掉 cookie 怎么解
chrome 以及同系列内核的浏览器都是这样的,更新之后会丢失登录状态。
我就担心会有这种事,每次更新前都先备份 profile
平时做工程做项目,并不需要搞什么复杂的类型体操,TS 就是高级一点的 JS 注释而已,没必要为此犹豫。
97 天前
回复了 Michae1Jacks0n 创建的主题 程序员 二维码有啥应用场景?
手机输入大段文字不方便,就先用电脑输入,然后用二维码传到手机。
我感觉就是单纯的设计师偏好🐶
看到又是 app-module 又是 app-component 的,估计还是用 angular 写的。
这可不是 jquery 那种随随便便就让你看到代码“原本的样子”的时代了。🐶
people.some(person => person.isLying())
// => true

math.some(exam => exam.isLying())
// => false

person.mathScore = 100
// Error: Cannot assign to 'mathScore' because it is a read-only property.
103 天前
回复了 Hookery 创建的主题 问与答 有没有人和我一样,有隐私癖
windows 系统只用离线账号,chrome 、Firefox 、vscode 、地图应用、Android ,从不登录使用同步功能。
103 天前
回复了 gegeligegeligo 创建的主题 问与答 你讨厌环境配置吗?
讨厌,所以我希望工具、软件都是尽可能 portable 的,解压缩就能用,U 盘拷走不丢配置,不想用了直接删除就行,不留垃圾文件。
103 天前
回复了 weiqk 创建的主题 Python 这几天被 Python 搞得快崩溃了
@ytmsdy
其实 python 有个容易忽略的点,虽然不用写大括号“{}”了,但还需要写冒号“:”。而且这个冒号在标准美式键盘上也是要 shift 组合才能输入的。所以 python 的缩进语句块,似乎并不比其他大括号语句块节约按键数。


@15855pm
多一个、少一个大括号属于语法问题,编辑器能立马报错,解决问题。
反观多一个、少一个缩进,这代码可能还是符合语法的,不容易发现,这才是灾难吧。
我小学时候三年级才开始教英语课,每周两课时,跟音乐、美术、自然一个地位。
103 天前
回复了 weiqk 创建的主题 Python 这几天被 Python 搞得快崩溃了
@NoOneNoBody
python 没有类似其他语言的“块级作用域”,所以就会有 if else 块里声明变量,在 if else 外也能用的现象。

这种表现跟早年 JS 的 var 声明的变量提升是一样的,也是 JS 经常遭诟病的特性。
所以后来 JS 有了 let 和 const ,用来声明块级作用域,语句块外不能再访问语句块内声明的变量。
@BeautifulSoap
额,我主要语言是 TS
@BeautifulSoap
除了 Array.prototype.sort()属于没看文档误用,箭头函数属于没说到关键点,其他都是翻旧账问题,懒得吐槽。
我第一次看到英语用 Portrait 和 Landscape 来表达纵向和横向也是很迷惑的🤣
@BeautifulSoap
“python 等动态语言也没这么奇怪的逻辑或认”
此言差矣。

以下是 python ,不支持你的观点。
result = 'a' or 'b'
print(result)
# result is 'a'

以下是 lua ,不支持你的观点。
local result = 'a' or 'b'
print(result)
result is 'a'
“python 等动态语言也没这么奇怪的逻辑或认”
此言差矣。

以下是 python ,不支持你的观点。
result = 'a' or 'b'
print(result)
# result is 'a'

以下是 lua ,不支持你的观点。
local result = 'a' or 'b'
print(result)
result is 'a'
@BeautifulSoap

|是位操作符,||是逻辑或,!是逻辑非,都是从 C 家族继承来的符号,如果你是写 python 、lua 、pascal 过来的,确实可能会觉得奇怪。

我倒觉得`const foo = () =>{ }`比`function foo() {}`更好,后者会改变 this 指向,会提升变量,甚至在非严格模式下,会逃出语句块,重名不报错。const foo = () =>{ }一把梭就没这些心智负担,并且体现了函数跟其他数据都是同等地位的的东西,既可以赋值给变量,也可以作为参数和返回值。
1 ... 2  3  4  5  6  7  8  9  10  11 ... 153  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2734 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 15:11 · PVG 23:11 · LAX 07:11 · JFK 10:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.