相关疑难解决方法(0)

在 Typescript 中使用“as const”而不添加“readonly”修饰符?

如果我想定义一个元组或常量对象形状,我会使用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)

我认为 …

javascript typescript visual-studio-code

31
推荐指数
1
解决办法
8100
查看次数

在Typescript中隐式创建一个元组

有没有一种没有类型提示的方法可以在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)

我错过了什么,或者这是唯一的方法吗?

typescript

6
推荐指数
4
解决办法
1238
查看次数