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
Javascript Typescript-函数应返回字符串,而不是()->;一串_Javascript_Typescript - Fatal编程技术网

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