Typescript 2.1放松后使用打字稿的意义
谁能告诉我今天使用打字本的目的是什么?我确信人们使用typescript主要是为了避免由类型引起的一些错误。但在v 2.1之后,以下代码是可接受的:Typescript 2.1放松后使用打字稿的意义,typescript,types,Typescript,Types,谁能告诉我今天使用打字本的目的是什么?我确信人们使用typescript主要是为了避免由类型引起的一些错误。但在v 2.1之后,以下代码是可接受的: let i; let aNumber = (x:number) => { x = 52; console.log(x); } aNumber(i); let aString = (x:string) => { x = 'strung'; console.log(x); } aString(i); 这真的让我想入
let i;
let aNumber = (x:number) => {
x = 52;
console.log(x);
}
aNumber(i);
let aString = (x:string) => {
x = 'strung';
console.log(x);
}
aString(i);
这真的让我想入非非。。。我是思想封闭还是打字稿作者?谢谢你公正的回答
问候,,
crova您实际上可以配置对null和未定义类型的处理。见: 默认情况下,null和undefined是所有其他类型的子类型。这意味着您可以将null和undefined赋值给类似number的对象 但是,当使用-strictNullChecks标志时,null和undefined仅可分配给void及其各自的类型。这有助于避免许多常见错误。如果要传入字符串或null或undefined,可以使用union类型字符串| null | undefined 也看到 strictNullChecks编译器标志实际上已被禁用。如果启用strictNullChecks编译器选项,代码将抛出错误,说明undefined不可分配给number 请看下面的图片 在v2.1之前,未初始化变量被隐式推断为v2.1之后更改的任何变量