定義一個(gè)普通變量
let flag:boolean = false
let updateMember: Object | number | null = 1;
通過(guò)useRef定義一個(gè)Dom對(duì)象,從而獲取dom的value
let pwdRef = useRef<HTMLInputElement>(null);
定義一個(gè)有參數(shù)联予,有返回值的普通函數(shù)
function sum(a:number, b:number): number {
return a + b
}
定義一個(gè)彈窗組件啼县,組件函數(shù)的參數(shù)類型,用type這種方式來(lái)定義
type UserEditProps = { ajaxAddUser: Function };
function UserEditModal({ ajaxAddUser }: UserEditProps) {
......
}
export default UserEditModal;
用as沸久、限定值類型來(lái)定義useState變量
type AlertStatus = 'error' | 'info' | 'warning' | 'success' | 'loading' | undefined;
function UserPage() {
....
let [alertObx, setAlertObx] = useState({
isVisible: false,
status: undefined,
desp: ''
} as { isVisible: boolean; status: AlertStatus; desp: string });
....
return (
......
{alertObx.isVisible && (
<Alert status={alertObx.status} className="chakra-alert-my1">
<AlertIcon />
{alertObx.desp}
</Alert>
)}
......
)
}
export default UserPage;
一個(gè)復(fù)雜的對(duì)象季眷,如果只用到其中的某個(gè)屬性,可以簡(jiǎn)單只定義它卷胯,其他不用的瘟裸,可以不定義
export const addUserList = (data: { password: string }) =>
POST('/support/user/account/add', {
...data,
password: hashStr(data.password)
});
// 如果只定義data:Object,會(huì)報(bào)錯(cuò):Object屬性沒(méi)有password
// 但如果把User里面的屬性全部定義一遍诵竭,是個(gè)工作量很大的事情话告,偷懶一下,只定義這個(gè)password即可
定義一個(gè){key: value},但是value必須是string卵慰,這樣的對(duì)象類型
type KeyValueString = {
[key: string]: string; // 對(duì)象的鍵是任意的字符串沙郭,值是字符串類型
};
export async function updateMember(userId: string, param: KeyValueString) {
...
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者