【发布时间】:2019-10-08 10:59:20
【问题描述】:
如何使用只读数组 (ReadonlyArray) 进行数组检查(如 Array.isArray())?
举个例子:
type ReadonlyArrayTest = ReadonlyArray<string> | string | undefined;
let readonlyArrayTest: ReadonlyArrayTest;
if (readonlyArrayTest && !Array.isArray(readonlyArrayTest)) {
// Here I expect `readonlyArrayTest` to be a string
// but the TypeScript compiler thinks it's following:
// let readonlyArrayTest: string | readonly string[]
}
使用普通数组,TypeScript 编译器可以正确识别它必须是 if 条件内的字符串。
【问题讨论】:
标签: arrays typescript typechecking