Typescript 具有特定';这';对象
我想创建一系列如下所示的对象:Typescript 具有特定';这';对象,typescript,Typescript,我想创建一系列如下所示的对象: type MyThing<T> = { data: T; fn: ???; } const foo = { data: { foo: "bar" }, fn: function() { return `Hello ${this.data.foo}!`; } } 类型神话={ 资料:T; fn:???; } 常数foo={ 数据:{ 傅:“酒吧
type MyThing<T> = {
data: T;
fn: ???;
}
const foo = {
data: {
foo: "bar"
},
fn: function() {
return `Hello ${this.data.foo}!`;
}
}
类型神话={
资料:T;
fn:???;
}
常数foo={
数据:{
傅:“酒吧”
},
fn:函数(){
返回'Hello${this.data.foo}!';
}
}
为了使其工作,必须使用长格式函数
语法,而不是箭头函数
如何键入此函数,以便在有人使用箭头函数时会导致错误?使用特殊的
this:SomeType
参数键入this
arg
类型神话={
资料:T;
fn:(这个:神话)=>空虚;
}
常数foo={
数据:{
傅:“酒吧”
},
fn:()=>{
返回'Hello${this.data.foo}!';
//包含箭头的函数捕获“this”的全局值。(7041)
//元素隐式具有“any”类型,因为类型“typeof globalThis”没有索引签名。(7017)
}
}
使用特殊的
this:SomeType
参数键入this
arg
类型神话={
资料:T;
fn:(这个:神话)=>空虚;
}
常数foo={
数据:{
傅:“酒吧”
},
fn:()=>{
返回'Hello${this.data.foo}!';
//包含箭头的函数捕获“this”的全局值。(7041)
//元素隐式具有“any”类型,因为类型“typeof globalThis”没有索引签名。(7017)
}
}
type MyThing<T> = {
data: T;
fn: (this: MyThing<T>) => void;
}
const foo = {
data: {
foo: "bar"
},
fn: () => {
return `Hello ${this.data.foo}!`;
// The containing arrow function captures the global value of 'this'.(7041)
// Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature.(7017)
}
}