Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Typescript 具有特定';这';对象_Typescript - Fatal编程技术网

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