小编MrA*_*ima的帖子

“无法找到我自己的 TypeScript 模块的模块”

我刚刚向 NPM 注册表ooafs发布了一个新的基于 TypeScript 的模块。然而,当我尝试安装它在别的打字稿项目导入,VSCode使我对import语句以下错误:Cannot find module 'ooafs'.ts(2307)

该模块的源文件被编译为 JavaScript 到一个dist/文件夹中,并且.d.ts还会生成定义 ( )。

这是已发布模块的树(我们下载的那个npm install):

.
??? dist
?   ??? Entry.d.ts
?   ??? EntryFilter.d.ts
?   ??? EntryFilter.js
?   ??? Entry.js
?   ??? EntryType.d.ts
?   ??? EntryType.js
?   ??? FSTypings.d.ts
?   ??? FSTypings.js
?   ??? index.d.ts
?   ??? index.js
??? LICENSE
??? package.json
??? README.md
Run Code Online (Sandbox Code Playgroud)

package.json确实包含以下项目:

{
    "main": "dist/index.js",
    "types": "dist/index.d.ts",
    ...
}
Run Code Online (Sandbox Code Playgroud)

因为该模块在 Runkit(纯 JS)上正常工作,所以我认为我遇到的唯一问题与 TypeScript 相关,并且当缺少声明文件是唯一的问题时,TypeScript 告诉我模块不存在并不是第一次。 …

node.js npm node-modules typescript

7
推荐指数
1
解决办法
2万
查看次数

C++ 遍历的幂等性:指针?参考 ?指针

我的理解

  • 在 C++ 中,普通值可以使用 转换为指向其自身的指针&value,或通过隐式转换转换为对其自身的引用。

  • 与 Rust 不同,引用并不是实际的一等类型,而只是某些类型声明站点接受的二进制限定符。引用可以透明地使用,就好像它们是它们的裁判一样,隐藏内部指针1。因此,我们可以&refToValue立即获取指向裁判的指针。

问题

如果我将指针转换为引用,再转换回指针,我能保证恢复到原始指针吗?Rust 中就是这种情况,但 Rust 再次将一级引用定义为通过指针抽象的“普通”类型。

// Sample code by @chi
T x;
T* ptr1 = &x;
T& ref = *ptr1;
T* ptr2 = &ref;
assert(ptr1 == ptr2); // Is that always true according to the spec?
Run Code Online (Sandbox Code Playgroud)

1:我知道 C++ 标准不要求将引用实现为指针,但我看不出如何以任何其他方式实现它们(不考虑上下文特定的优化),特别是如果我的最后一个问题的答案是“是的”。

c++ pointers reference language-lawyer

4
推荐指数
1
解决办法
141
查看次数