小编All*_*ine的帖子

在PHP中将静态方法作为参数传递

在PHP中可以做这样的事情:

myFunction( MyClass::staticMethod );
Run Code Online (Sandbox Code Playgroud)

这样'myFunction'将引用静态方法并能够调用它.当我尝试它时,我得到一个"Undefined class constant"(PHP 5.3)的错误,所以我想这不是直接可能的,但有没有办法做类似的事情?我到目前为止最接近的是将"函数"作为字符串传递并使用call_user_func().

php static class

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

VSCode - 从 cli 打开远程

我一直使用新的 VS Code 远程功能,它非常棒。我想知道是否可以从 cli 打开特定的 ssh 主机/文件夹。这样我就可以编写启动我的开发环境(vm、vs-code 等)的脚本!

我看了一下,code-insiders --help但没有看到任何可以让我做到这一点的东西。这可能会成为一个功能请求,但我想在 github 存储库上这样做之前我应该​​先在这里发布。

谢谢!

visual-studio-code vscode-remote

16
推荐指数
1
解决办法
3819
查看次数

Web应用程序部署和多个版本

我很想知道其他开发者如何处理网络应用程序的版本和部署不同的版本.根本问题在于,当您部署新版本时,有人可能正在使用您的Web应用程序,此时他们没有客户端的Javascript等已过时.

在客户端对媒体进行版本控制很容易,但如果你的版本,你还需要对你的业务逻辑和数据库进行版本控制,这可能会让事情变得混乱......

所以我看到了几种解决方法:

  1. 部署新版本时,在站点上显示"升级"通知.

  2. 版本标记客户端并拒绝从旧客户端源向新版本提交任何内容.很公平,但它并没有真正与持续部署齐头并进.

  3. 持续数据库迁移 - 同时运行多个版本的应用程序(尽可能将用户迁移到新版本).这将需要将旧数据库模式的任何更新"转发"到新模式.似乎对部署最具吸引力,但也可能非常复杂.

  4. 在所有三个中间的某个地方.

我应该注意到,我知道担心这种事情超出了大多数应用程序的需求,但我正在思考它,我很想知道别人如何处理它.

database versioning deployment web-applications

8
推荐指数
1
解决办法
1005
查看次数

Vue-确认消息中的样式用户输入(允许特定的html标签)

使用Vue,我想显示一个确认模式,内容为“您确定要删除'{{itemName}}'吗?”。

通过将Javascript字符串绑定到模板中嵌入的变量,这很容易。

但是,如果我想itemName用斜体字强调它,我唯一能找到的方法就是使用v-html,这当然会使它适用于XSS。

有什么方法可以对字符串的一部分进行样式设置?

xss vue.js vuejs2

8
推荐指数
1
解决办法
323
查看次数

在TypeScript中导出导入的接口

我在不同的目录中有许多模板 - 我为每个模板定义了一个接口,因此我可以确定我在TypeScript代码中引用的内容将在模板中可用.

我想为每个接口定义一个接口,然后整理一个可以导入的文件中的所有接口(所以我总是可以导入该文件,自动完成将显示哪些接口可用).

但是,我在做这件事时遇到了麻烦.我目前拥有的:

login/interface:

export interface Index {
    error: string;
    value: string;
}
Run Code Online (Sandbox Code Playgroud)

interfaces.ts:

import * as login from './login/interface';
export let View = {
    Login: login
};
Run Code Online (Sandbox Code Playgroud)

login.ts:

import * as I from './interface';
...
let viewOutput: I.View.Login.Index = {
   ...
};
Run Code Online (Sandbox Code Playgroud)

结果是:

错误TS2694:命名空间'"... interface"'没有导出的成员'View'.

但是,如果我尝试I.View.Login.Index作为一个简单的变量访问,那么我得到:

类型'typeof'... interface"'上不存在属性'Index'.

这似乎是正确的,因为接口不是真正的类型,但它已经能够访问I.View.Login到那么远.

我不明白我在做错了什么或错过了什么我害怕.任何帮助将不胜感激!

typescript

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

在.NET Core 2.1中安装.NET SQL Client后,DbProviderFactories.GetFactoryClasses不返回任何结果

我正在将一个库移植到.NET Core 2.1,因为它支持DbProviderFactory.在大多数情况下它已经很好 - 它编译,但运行时我得到一个错误:

System.ArgumentException:'在已注册的.NET数据提供程序列表中找不到指定的不变名'System.Data.SqlClient'.

我曾经DbProviderFactories.GetFactoryClasses()检查过是否安装了任何提供程序,并且似乎没有(结果表中有0行).

所以我想我的问题是,如何为.NET Core安装数据提供程序?我在机器上安装了.NET Framework 4.5,它正在挑选数据提供程序而没有任何问题.我不想System.Data.SqlClient作为本地项目的Nuget 安装,因为这会添加一个依赖性,使得DbProviderFactory无关紧要.也就是说,我试图安装System.Data.SqlClient在一个使用我的库作为测试的项目中,但它仍然没有被选中.

c# dbproviderfactories .net-core

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

带有passport-local的TypeScript:不能将“new”与类型缺少调用或构造签名的表达式一起使用

我正在尝试将passport-local包与 TypeScript (2.0.0RC)一起使用,但出现编译器错误,指出:

错误 TS2351:不能将“new”用于类型缺少调用或构造签名的表达式

附上 VS Code 中的屏幕截图(工具提示下的代码只是passport.use()。

在此处输入图片说明

我一生都无法弄清楚如何给它想要的签名。

我发现了一些 问题的话题,但任何事情我尝试只是给其他编译器错误。

有没有人有任何建议如何让编译器对这段代码感到满意?

node.js typescript passport.js

3
推荐指数
2
解决办法
4476
查看次数

允许TypeScript从工厂推断类型

TypeScript是否可以从静态函数推断返回类型.例如,如果我有一个静态User.fromId()函数,它将返回一个User对象.但我想通过另一个函数(称之为builder)传递它- 例如:

builder(User.fromId, values);
Run Code Online (Sandbox Code Playgroud)

其中builder定义为:

function builder( construct: Function, values: any ) {
   var inst = construct();
   // set values
   return inst;
}
Run Code Online (Sandbox Code Playgroud)

我如何让TypeScript"知道" builder将返回a User而不User作为泛型传递?也许它可以,但使用Function第一个参数的类型是问题?如果是这样,可以在没有泛型的情况下完成推理,我知道我可以使用它来定义返回类型(但感觉多余).

谢谢!

types inference typescript

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

解析 TypeScript 类型中的承诺

这是关于解析返回类型的问题的延续。我这么近我在寻找什么做的(这是必须基于经过验证的数据构建模型实例的公共功能),它工作在JS很好,但我想不通的TS的最后一部分打字。

关键是我的Init类型的回报——特别是Builder<T[K]>部分。我明白为什么这会导致Builder<(id: number) => Promise<Test>>返回类型,但我终其一生都无法弄清楚如何告诉 TS 实际上它只是Test被返回,而不是返回 Promise 的函数Test

可以将以下内容复制/粘贴到 VSCode(或其他)中以显示问题。该ter1变量应该是一个实例Test,并编译为JS它是,但TS没有看到这一点。

export interface Builder<T> {
    (values: any, db: any): Promise<T>
}

export interface Wrapper {
    <T, TId>(
        construct: (id: TId, db: any | null) => Promise<T>,
        idSrc: string | string[],
        errorMsg: string
    ): Builder<T>
}

let builder: Wrapper = function (construct, idSrc, errorMsg ) {
    // A function that can be used …
Run Code Online (Sandbox Code Playgroud)

typescript

0
推荐指数
1
解决办法
3685
查看次数