Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript es6使用typescript在函数中分解参数_Javascript_Typescript - Fatal编程技术网

Javascript es6使用typescript在函数中分解参数

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) =>

我仍然希望使用解构,因为它可以帮助调用函数。但我在函数params中遇到了一个问题:

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));

这是干什么用的?还是用错别字。。这是针对泛型的。。这里不用