class User {
constructor(uname: string, age: number) {}
}
type TCtor = ConstructorParameters;
function init(...info: TCtor) {
const [name] = info;
console.log('[name]', name);
}
init('我爱学习', 20);
// A=a 判断第一个属性是否继承自第二个属性
type A = Exclude<'x' | 'a', 'x' | 'y' | 'z'>;
//Extract允许您通过选择两种不同类型中存在的属性来构造类型
interface FirstType {
id: number;
firstName: string;
lastName: string;
}
interface SecondType {
id: number;
address: string;
city: string;
}
// type ExtractType1 = "id"
type ExtractType1 = Extract;
//type ExcludeType2 = "firstName" | "lastName"
type ExcludeType2 = Exclude;
//构建函数工厂
declare function create any>(c: T): InstanceType;
class YidengA {}
class YidengB {}
let a1 = create(YidengA); // YidengA
let b1 = create(YidengB); // YidengB
//type TNon = string | number
type TNon = NonNullable;
type IFoo = (
name: string,
age: number
) => { name: string; age: number; gender: string };
//type IBar = [name: string, age: number]
type IBar = Parameters;
interface User {
id: number;
age: number;
name: string;
}
// type PartialUser = {
// name?: string | undefined;
// age?: number | undefined;
// id?: number | undefined;
// }
type PartialUser = Partial;
interface Person {
readonly id: number; // 直读属性
}
const data: Person = {
id: 456,
};
//无法分配到 "id" ,因为它是只读属性。
data.id = 567;
let ydarr: number[] = [1, 2, 3, 4];
let ro: ReadonlyArray = ydarr;
//类型“readonly number[]”上不存在属性“push”。
ro.push(2);
interface User {
id: number;
age: number;
name: string;
}
// type PickUser = { id: number; age: number; }
type PickUser = Pick;
type petsGroup = 'dog' | 'cat' | 'fish';
interface IPetInfo {
name: string;
age: number;
}
//将petsGroup全部映射为IPetInfo
type IPets = Record;
const animalsInfo: IPets = {
dog: {
name: 'dogName',
age: 2,
},
cat: {
name: 'catName',
age: 3,
},
fish: {
name: 'fishName',
age: 5,
},
};
interface User {
id: number;
age: number;
name: string;
}
// type PartialUser = { id?: number; age?: number; name?: string; }
type PartialUser = Partial;
//去掉问号
type PullDownRefresh = Required>;
type T0 = ReturnType<() => string>; // string
type T1 = ReturnType<(s: string) => void>; // void
type T2 = ReturnType<(() => T)>; //number[]
type T3 = ReturnType; // { a: number, b: string }
type T4 = ReturnType<(() => T)>; // {}
type T5 = ReturnType; // any
type T6 = ReturnType; // any
type T7 = ReturnType; // Error
type T8 = ReturnType; // Error
页面更新:2024-03-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号