我使用带有NextJs和next-images的打字稿。 代码是:
import css from "./style.sass";
import img from './logo.svg';
import Link from 'next/link';
export default () => <Link href="/">
<img src={img} className={css.logo}/>
</Link>;
如果未输入任何内容,则会显示此错误:
Cannot find module './logo.svg'.ts(2307)
目前,我使用以下类型(typings.ts):
declare module "*.svg" {
const value: string;
export default value;
}
declare module "*.png" {
const value: string;
export default value;
}
declare module "*.jpg" {
const value: string;
export default value;
}
使用这些types.ts文件,该错误应该得到解决,但不是。 使用时有人会有相同的错误吗? 有没有更好的方法来编写Types.ts文件?
答案 0 :(得分:3)
更新2020:
next-images软件包现在支持TypeScript。
您需要做的就是将定义添加到next-env.d.ts
答案 1 :(得分:0)
许多小时后,尝试并出错,我找到了解决方案。
我必须将types.ts移到src /目录,并将其重命名为images.d.ts
此处解释:https://webpack.js.org/guides/typescript/#importing-other-assets
回答一个如何以一种更通用的方式写打字仍然很高兴。