我最近在以下代码段中收到 Visual Studio Code 的“错误”警告:
someDateObject.toLocaleDateString('de-DE', Travel.dateOptions));
someDateObject.toLocaleDateString('de-DE', Travel.dateOptions));
Travel.dateOptions 的定义如下:
public static dateOptions = { year: 'numeric', month: '2-digit', day: '2-digit' };
在过去 2 年的大部分时间里,这一直运行良好,但最近在 VSC 中打开课程时,它显示 Travel.dateOptions
的以下错误:
Argument of type '{ year: string; month: string; day: string; }' is not assignable to parameter of
type 'DateTimeFormatOptions'.
Types of property 'year' are incompatible.
Type 'string' is not assignable to type '"numeric" | "2-digit"'. ts(2345)
我对为什么感到困惑。这可能是VSC的错误吗?一旦编译,代码似乎工作正常(并且一直工作正常) - 根据 Date::toLocaleDateString() 的 documentation ,我在这里所做的似乎完全有效。
有任何想法吗?
我刚刚遇到了同样的问题,而不是将 const 重新声明为 const (感觉像代码味道),我强制变量类型: