如何在typescript中迭代字符串文字类型?
例如我定义这种类型
type Name = "Bill Gates" | "Steve Jobs" | "Linus Torvalds";
我想这样迭代
for (let name of Name) {
console.log("Possible name: " + name);
}
或者这在打字稿中根本不可能?
由于typescript 2.4,可以使用字符串类型的枚举。这些枚举可以轻松迭代:
https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/
因为TypeScript只是一个编译器,所以在运行时没有任何类型信息。这意味着不幸的是,您无法遍历类型。
根据您尝试执行的操作,可以使用枚举存储名称索引,然后在数组中检索这些索引。
您可以定义一个数组文字,而不是像OP请求的那样迭代字符串文字类型的(并集),如果将标记为const
,则条目的类型将是字符串文字类型的并集。
由于typescript 3.4,您可以在文字表达式上定义常量断言,以标记:-该表达式中的文字类型不应加宽(例如,不能从“hello”变为字符串)-数组文字变为只读元组
例如:
const names = ["Bill Gates", "Steve Jobs", "Linus Torvalds"] as const;
type Names = typeof names[number];
它可以在运行时使用,也可以检查类型,例如:
const companies = {
"Bill Gates" : "Microsoft",
"Steve Jobs" : "Apple",
"Linus Torvalds" : "Linux",
} as const;
for(const n of names) {
console.log(n, companies[n]);
}
const bg : Names = 'Bill Gates';
const ms = companies[bg];
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-断言
https://mariusschulz.com/blog/const-assertions-in-literal-expressions-in-typescript
https://microsoft.github.io/TypeScript-New-Handbook/chapters/types-from-extraction/#indexed-访问类型
问题内容: 如何使用索引逐个字符地迭代UTF-8字符串? 使用方括号运算符访问UTF-8字符串时,utf编码的字符包含2个或更多元素。 例如: 但我想拥有: 有可能,但是这非常慢,即。 是否有另一种无需使用字符就可以逐字符插入字符串的方法? 问题答案: 使用preg_split。使用“ u”修饰符, 它支持UTF-8 Unicode。
问题内容: 有没有一种方法可以将Typescript中的字符串解析为JSON。 示例:在JS中,我们可以使用。Typescript中有类似的功能吗? 我有一个JSON对象字符串,如下所示: 问题答案: Typescript是javascript(的超集),因此您可以像在javascript中那样使用它: 只有在打字稿中,您才能对结果对象进行打字: (操场上的代码)
在typescript中有没有一种方法可以将字符串解析为JSON。 示例:在JS中,我们可以使用。在Typescript中有类似的功能吗? 我有一个JSON对象字符串,如下所示:
给定数字的字符串表示形式,如何将其转换为TypeScript中的类型?
我试图重置文本框值。试图设置类型字符串|数字的变量,但我得到一个错误。那么如何在打字稿中将两种类型设置为单个变量。请帮助找到解决方案。 错误: 元素[i]. value=值[i]; 类型“string | number”不可分配给类型“string”。类型“number”不可分配给类型“string” 演示:https://stackblitz.com/edit/angular-dzxsg4?fi