Javascript 如何在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

我需要使用Typescript将此数组传递到我的函数中:

  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而使其过于复杂了。非常感谢。