Javascript 如何在TypeScript中指定字符数组
我需要使用Typescript将此数组传递到我的函数中:Javascript 如何在TypeScript中指定字符数组,javascript,typescript,types,Javascript,Typescript,Types,我需要使用Typescript将此数组传递到我的函数中: const message = [ 'c', 'a', 'k', 'e', ' ', 'p', 'o', 'u', 'n', 'd', ' ', 's', 't', 'e', 'a', 'l' ]; 由于TypeScript没有固定长度字符的类型,我不确定将数组传递给函数的最佳方式是什么 现在我这样称呼它,但我想用一种更好的方式 function reverseWor
const message = [ 'c', 'a', 'k', 'e', ' ',
'p', 'o', 'u', 'n', 'd', ' ',
's', 't', 'e', 'a', 'l' ];
由于TypeScript没有固定长度字符的类型,我不确定将数组传递给函数的最佳方式是什么
现在我这样称呼它,但我想用一种更好的方式
function reverseWords(wordArray :any[]): any[]{
}
我还尝试使用泛型来确保输入和输出是相同的,但出现了错误
“类型'string'不可分配给类型'T'”
函数reverseWords(wordArray:Array):数组{
返回[“c”、“a”、“k”、“e”];
}
非常感谢您在这方面提供的指导,我显然是个新手。您可以使用
enum
来执行此操作,但如果您不想使用运行时代码或enums提供的间接寻址,那么另一种方法是为您的字符定义自定义字符串类型联合:
type Char = 'c' | 'a' | 'k' | 'e' | ' ' | 'p' | 'o' | 'u' | 'n' | 'd' | ' ' | 's' | 't' | 'e' | 'a' | 'l';
const messageOk: Char[] = [ 'c', 'a', 'k', 'e', ' ',
'p', 'o', 'u', 'n', 'd', ' ',
's', 't', 'e', 'a', 'l' ]; // OK!
const messageNotOk: Char[] = [ 'c', 'a', 'k', 'e', ' ',
'p', 'o', 'u', 'n', 'd', ' ',
's', 't', 'e', 'a', 'l', 'x' ]; // Not OK! x does not exist on type Char
function reverseWords(wordArray : Char[]): Char[] {
...
}
这几乎类似于
enum
,因为此联合中的每个字符串都是自己的类型,并且只能分配给该字符串 您可以使用enum
来执行此操作,但如果您不需要运行时代码或enums提供的间接寻址,那么另一种方法是为您的字符定义自定义字符串类型联合:
type Char = 'c' | 'a' | 'k' | 'e' | ' ' | 'p' | 'o' | 'u' | 'n' | 'd' | ' ' | 's' | 't' | 'e' | 'a' | 'l';
const messageOk: Char[] = [ 'c', 'a', 'k', 'e', ' ',
'p', 'o', 'u', 'n', 'd', ' ',
's', 't', 'e', 'a', 'l' ]; // OK!
const messageNotOk: Char[] = [ 'c', 'a', 'k', 'e', ' ',
'p', 'o', 'u', 'n', 'd', ' ',
's', 't', 'e', 'a', 'l', 'x' ]; // Not OK! x does not exist on type Char
function reverseWords(wordArray : Char[]): Char[] {
...
}
这几乎类似于
enum
,因为此联合中的每个字符串都是自己的类型,并且只能分配给该字符串 将string[]
作为类型写入有什么问题吗?如果是这样的话,一定是因为在读取Typescript的字符串定义时放弃了string而使其过于复杂了。谢谢。将string[]
作为类型写入有什么问题吗?如果这样做有效,一定是因为在读取Typescript的字符串定义时放弃了string而使其过于复杂了。非常感谢。