我正在开发一个框架,我希望框架包的依赖项可供使用它的应用程序使用。依赖项不是由使用者直接使用,而是由框架提供的文件使用。
使用 npm,它可以工作,但是使用 Yarn 2 我会收到这样的错误
Error: Your application tried to access @snowpack/plugin-dotenv, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Run Code Online (Sandbox Code Playgroud)
显然,我可以将依赖项添加到使用应用程序的 package.json 中,但这需要在依赖项发生变化时手动编辑 package.json 。这违背了具有无模糊升级路径的框架的理念。此外,依赖项适用于框架提供的文件。它们不应受到下游代码的干扰。
是否可以在下游共享依赖项?
注意:我正在使用工作区。我不知道这是否与问题相关。
我如何返回 elem 的值,以便我可以验证它是真的1?
const elem = await page.$('input#my-input')
await elem.fill('1')
Run Code Online (Sandbox Code Playgroud) 有没有办法把这个代码
export class person {
@IsString()
@Column('text')
name: string
@IsOptional()
@IsString()
@Column('text')
description?: string
}
Run Code Online (Sandbox Code Playgroud)
变成类似于这个的东西
export class person {
name: string
description?: string
}
Run Code Online (Sandbox Code Playgroud)
我知道需要装饰器,但是当每个属性必须声明 3 次或更多次属性类型时,SSOT 似乎丢失了。
有没有更简单的方法来解决这个问题?乔伊?模式生成?
从函数返回类型分配类型的正确方法是什么?
async function getFood(){
const food = await {fruit: 'banana', qty: 3}
return food
}
/**
* made up syntax
* @type {returnOf getFood}
* */
let doesntWork;
/** @type {{fruit: string, qty: number}} */
let worksButNoInferring
let worksButRequiresCallingFunction = getFood()
Run Code Online (Sandbox Code Playgroud)
VSCode 证明,返回类型是可用的。我只是不知道如何在不调用该函数的情况下获取它。
如何定义接受对象的部分或全部属性的类型?我知道我可以将每个属性标记为可选,但是有没有办法让所有属性都可选?
const defaults = {
host: 'localhost',
distDir: 'dist',
entrypoint: '__app.html',
app: `build/bundle.js`,
spaPort: "5000",
ssrPort: "5005",
serveSpa: false,
serveSsr: false,
}
/**
* @param {defaults} options
*/
function merge(options = {}){
const allOptions = {...defaults, ...options)
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示警告 as {}does not meet defaults。我可以定义参数_options以接受 的任何子集defaults吗?