如果我想定义一个元组或常量对象形状,我会使用as const. 例如:
const arr = [{ a: 1 }] as const;
/* readonly [{
readonly a: 1;
}] */
Run Code Online (Sandbox Code Playgroud)
然而,我不想要,readonly因为我会得到很多The type 'readonly ...' is 'readonly' and cannot be assigned to the mutable type '...'
我定义了一个“可变”泛型:
type Mutable<T> = {
-readonly [K in keyof T]: Mutable<T[K]>;
}
type Arr = Mutable<typeof arr>;
/* [Mutable<{
readonly a: 1;
}>] */
Run Code Online (Sandbox Code Playgroud)
但是,TS 不会递归地应用于MutableVS Code 的类型预览。换句话说,我希望 VS Code 的类型预览显示:
/* [{
a: 1;
}] */
Run Code Online (Sandbox Code Playgroud)
我认为 …
有没有一种没有类型提示的方法可以在Typescript中创建一个元组.
如果我只是这样做
const tuple = [1, 2];
Run Code Online (Sandbox Code Playgroud)
元组的类型 number[]
我最接近一个oneliner的是
const tuple: [number, number] = [1, 2];
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或者这是唯一的方法吗?