有什么方法可以转换命名/标记元组
type Tup = [a: string, b: number];
Run Code Online (Sandbox Code Playgroud)
反对
type Obj = {
a: string;
b: number;
}
Run Code Online (Sandbox Code Playgroud)
最后一次尝试不起作用
type Map1<Container extends unknown[]> = {
[K in keyof Container]: Container[K];
};
type Map2<Container extends Record<PropertyKey, any>, Replace> = {
[K in keyof Container]: Replace;
};
let c1 : Map1<Tup> = {
'a' : 's',
'b' : 1,
};
let c2 : Map2<Tup> = {
'a' : 's',
'b' : 1,
};
Run Code Online (Sandbox Code Playgroud)
谢谢
我如何为内置类型(例如实用程序类型)创建别名,我有与内置类型同名的定义,并且碰巧使用与内置类型同名的类型,例如:
interface Record { // <-- my definition
toObject() : Record<string, object> // <-- built in definition
}
Run Code Online (Sandbox Code Playgroud)
不起作用
type TsRecord<K,V> = Record<K, V>
Run Code Online (Sandbox Code Playgroud)
如果有导入方法,我找不到参考
import {Record as TsRecord} from ?
Run Code Online (Sandbox Code Playgroud) 如何递归地更改属性类型,我只能在单维中做到这一点,从实用程序类型来看似乎可以实现这一点,我已经尝试了很多次,但无法做到正确
type Convert<V, O extends object> = {
[Key in keyof O] : V
}
// single
{
let original = {
data1 : 1,
data2 : 1,
};
let converted : Convert<string, typeof original> = {
data1: 'a',
data2: 'a',
};
}
// recursive
{
let original = {
data1 : 1,
data2 : 1,
data3 : {
data1 : 1,
data2 : 1,
}
};
let converted : Convert<string, typeof original> = {
data1: 'a',
data2: …Run Code Online (Sandbox Code Playgroud) typescript ×3