为什么在Typescript中允许这样做?
interface a {
age: 42
}
42不是类型。我认为接口永远都不应包含实现细节,而应具有“真实”类型age: number
。我认为这是枚举的捷径,age: AgeEnum
但不是很漂亮。
如果我这样做也会混淆编译器(将42与数字混淆)。如果我做:
class Person implements a {
public age: number = 42
}
error: Type number is not assignable to type 42
...我觉得有点困惑!
我也没有在文档中找到此示例。无论如何,都不是直接的例子。
谁能向我解释为什么打字稿中允许这样做?
接口a
声明age
限制为value 42
。在您的实现中,您将field的类型约束重新定义a
为number
,因此是错误。
打字稿中允许使用,因为您可以限制为原始文字值。这实际上是一件好事。如果你想改变的年龄ageInDecades
,你认为那人不会住在过去的100
几年中年龄。然后可以age
按以下方式定义接口约束:
interface IAge {
ageInDecades: 0|10|20|30|40|50|60|70|80|90|100;
}
这是一个相当微弱的例子,但我认为您明白了。您可以对允许的字符串值执行相同的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句