Javascript Typescript-函数应返回字符串,而不是()->;一串
我正试图添加以下代码来检测浏览器,但我在Javascript Typescript-函数应返回字符串,而不是()->;一串,javascript,typescript,Javascript,Typescript,我正试图添加以下代码来检测浏览器,但我在browserData中得到的错误是: Type '{ browserName: () => string; browserVersion: string | null; operatingSystem: string | (() => string); } | { browserName: string; browserVersion: string; operatingSystem: string; }' is not assignable
browserData
中得到的错误是:
Type '{ browserName: () => string; browserVersion: string | null; operatingSystem: string | (() => string); } | { browserName: string; browserVersion: string; operatingSystem: string; }' is not assignable to type 'BrowserData'.
Type '{ browserName: () => string; browserVersion: string | null; operatingSystem: string | (() => string); }' is not assignable to type 'BrowserData'.
Types of property 'browserName' are incompatible.
Type '() => string' is not assignable to type 'string'.ts(2322)
我看到有一个错误,因为返回值应该是字符串,而不是返回字符串的函数。如何更正此问题?您需要调用
toString
方法-否则,您将浏览器名
和可能的操作系统
作为一个函数:
function getBrowserInfo(): BrowserData {
const browserInfo = detectBrowser.detect();
const browserData: BrowserData =
browserInfo !== null ?
{
browserName: browserInfo.name.toString(),
browserVersion: browserInfo.version,
operatingSystem: browserInfo.os !== null ? browserInfo.os.toString() : '',
} :
{
browserName: '',
browserVersion: '',
operatingSystem: ''
};
return browserData;
}
browserInfo.name.toString()
您没有调用它。是的,就是这样。非常感谢。
function getBrowserInfo(): BrowserData {
const browserInfo = detectBrowser.detect();
const browserData: BrowserData =
browserInfo !== null ?
{
browserName: browserInfo.name.toString(),
browserVersion: browserInfo.version,
operatingSystem: browserInfo.os !== null ? browserInfo.os.toString() : '',
} :
{
browserName: '',
browserVersion: '',
operatingSystem: ''
};
return browserData;
}