Javascript es6使用typescript在函数中分解参数
我仍然希望使用解构,因为它可以帮助调用函数。但我在函数params中遇到了一个问题:Javascript es6使用typescript在函数中分解参数,javascript,typescript,Javascript,Typescript,我仍然希望使用解构,因为它可以帮助调用函数。但我在函数params中遇到了一个问题: const t = ({id, name}: {number, string}) => `id: ${id} name:${name}` 另一个失败的方法是,我试图避免将所有类型的参数放在一行中,但使用了一个接口: interface tParams { id: number, name: string } const t = ({id, name} as tParams) =>
const t = ({id, name}: {number, string}) => `id: ${id} name:${name}`
另一个失败的方法是,我试图避免将所有类型的参数放在一行中,但使用了一个接口:
interface tParams {
id: number,
name: string
}
const t = ({id, name} as tParams) => `id: ${id} name:${name}`
您可以这样做:
const t = ({id, name}: {id: number, name: string}) => `id: ${id} name:${name}`
interface tParams {
id: number,
name: string
}
const t = ({id, name}: tParams) => `id: ${id} name:${name}`
或者这样:
const t = ({id, name}: {id: number, name: string}) => `id: ${id} name:${name}`
interface tParams {
id: number,
name: string
}
const t = ({id, name}: tParams) => `id: ${id} name:${name}`
Destructure适用于任何对象类型。所以,如果您的对象定义正确,解构将起作用。在这里,人位于一个由id和名称组成的对象上。所以这两个函数都是正确的
interface Person {
id?:number;
name: string;
}
const t = (person: Person) => `id: ${person.id} name:${person.name}`
// Equivalent to
const t2 = ({id, name}: Person) => `id: ${id} name:${name}`
as
用于铸造
class Employee {
name:string;
salary: number;
}
const emp = new Employee()
console.log(emp.id) //Error here since emp does not have id.
console.log((emp as Person).id) //NO error
编辑此问题的答案并将其修复:
const t=({id,name}:{id:number,name:string})=>`id:${id}name:${name}`
希望下面的内容能帮助你,给你一个想法
const t = ({id, name}) => `id: ${id} name:${name}`;
interface tParams {
id: number,
name: string
}
const t2 = ({id, name} : tParams) => `id: ${id} name:${name}`;
//testing code below
let tParamsObject: tParams = {
id: 123,
name: "James"
};
console.log (t(tParamsObject));
console.log (t2(tParamsObject));
这是干什么用的?还是用错别字。。这是针对泛型的。。这里不用