gpt4 book ai didi

javascript - 在 Angular 2/typescript 中声明 javascript 方法以避免属性 x 不存在错误

转载 作者:行者123 更新时间:2023-11-28 15:03:04 25 4
gpt4 key购买 nike

我在 Angular 2、TypeScript 项目中使用了一些 JavaScript。例如,我使用 MixPanel,它有一个 javascript 文件和一些如下所示的方法:

mixpanel.people.set({
"$first_name": "Joe",
"$last_name": "Doe",
"$created": "2013-04-01T09:02:00",
"$email": "joe.doe@example.com"
});

还有这个:

   mixpanel.track("Video played", {
"Video length": 213,
"id": "hY7gQr0"
});

调用此方法有效,但 typescript 找不到此 mixpanel 对象的任何定义,因此会引发错误。这是有问题的,因为我无法使用这些错误进行编译...

因此,我使用这个小技巧来声明 mixpanel,如下所示:

import { Injectable } from '@angular/core';

declare var mixpanel: {
track(event: string, data: any): void;
identify(data: any): void;
people(data: any): void;
track_links(domQuery: string, eventName: string, properties: any): void;
};

@Injectable()
export class MixPanelService {

constructor() { }

public track(event: string, data: any) {
mixpanel.track(event, data);
}

public track_links(domQuery: string, eventName: string, properties: any) {
mixpanel.track_links(domQuery, eventName, properties);
}

public identify(id: string) {

mixpanel.people.set({ <---- ERROR: Property 'set' does not exist on type '(data: any) => void'.at line 37 col 21
'$first_name': id
});
mixpanel.identify(id);

}
}

我声明的是mixpanel.people,但不是mixpanel.people.set。这会导致错误。

有人知道我应该如何声明 mixpanel var 来解决这个问题吗?或者有更好的解决方案吗?

最佳答案

declare var mixpanel:any; 

可以解决您的所有问题;

关于javascript - 在 Angular 2/typescript 中声明 javascript 方法以避免属性 x 不存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com