在打字稿中使用 as 关键字
Usage of as keyword in typescript
在一个对象中,开发人员定义了这样的代码常量:
medium: {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500',
},
as 关键字有什么作用?
在这种情况下,as
什么都不做。
const x = '500';
const y = '500' as '500';
const z = '500' as string;
console.log(x === y);
console.log(z === y);
console.log(x === z);
会输出
true
true
true
我应该添加的注释 - TypeScript 有一个叫做 string literal types 的东西,它允许您定义允许变量使用的字符串集。但是,在这种情况下使用它们是没有意义的,因为 '500'
显然已经是 '500'
.
类型
在这种情况下,as '500'
所做的是将 fontWeight 设置为无法更改,方法是使 fontWeight 属性 类型为 '500'
而不是类型 string
没有那条线。
例如,在这个 Typescript Playground link 中,您会注意到 noWork
在为 fontWeight 分配新值时存在类型错误,而 works
允许它。
我还添加了一个带有字符串文字类型联合的示例 moreOptions
。由于 fontWeights 通常仅适用于特定值,因此这是一个很好的联合案例,可以防止分配无效值。
const noWork = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500',
}
noWork.fontWeight='599' // Type '"599"' is not assignable to type '"500"'.
const works = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500',
}
works.fontWeight='599'
const moreOptions = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500'|'600'|'700',
}
moreOptions.fontWeight='600'
moreOptions.fontWeight='425' // Type '"425"' is not assignable to type '"500" | "600" | "700"'.
限制变量允许的类型是打字稿的一个非常有用的部分,尤其是当某些值适用于 属性 时。
在一个对象中,开发人员定义了这样的代码常量:
medium: {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500',
},
as 关键字有什么作用?
在这种情况下,as
什么都不做。
const x = '500';
const y = '500' as '500';
const z = '500' as string;
console.log(x === y);
console.log(z === y);
console.log(x === z);
会输出
true
true
true
我应该添加的注释 - TypeScript 有一个叫做 string literal types 的东西,它允许您定义允许变量使用的字符串集。但是,在这种情况下使用它们是没有意义的,因为 '500'
显然已经是 '500'
.
在这种情况下,as '500'
所做的是将 fontWeight 设置为无法更改,方法是使 fontWeight 属性 类型为 '500'
而不是类型 string
没有那条线。
例如,在这个 Typescript Playground link 中,您会注意到 noWork
在为 fontWeight 分配新值时存在类型错误,而 works
允许它。
我还添加了一个带有字符串文字类型联合的示例 moreOptions
。由于 fontWeights 通常仅适用于特定值,因此这是一个很好的联合案例,可以防止分配无效值。
const noWork = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500',
}
noWork.fontWeight='599' // Type '"599"' is not assignable to type '"500"'.
const works = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500',
}
works.fontWeight='599'
const moreOptions = {
fontFamily: 'Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif',
fontWeight: '500' as '500'|'600'|'700',
}
moreOptions.fontWeight='600'
moreOptions.fontWeight='425' // Type '"425"' is not assignable to type '"500" | "600" | "700"'.
限制变量允许的类型是打字稿的一个非常有用的部分,尤其是当某些值适用于 属性 时。