小编Aci*_*dic的帖子

如何与 JavaScript 一起使用 TypeScript 声明文件

我想将我的 JavaScript 函数文档分成 TypeScript .d.ts 文件。

例如:

components/
  Button/
    Button.jsx   # JavaScript component
    Button.d.ts  # TypeScript documentation with prop types
Run Code Online (Sandbox Code Playgroud)

同样,Material UI 是如何做到这一点的。https://github.com/mui-org/material-ui/tree/master/packages/material-ui/src/Button

我的问题是 TypeScript 和 VSCode 无法识别.d.ts当前 JavaScript 文件的文件。

在我的设置中,我有以下Button.d.ts文件:

interface Props {
  text: string
  onClick: () => void
}

declare const Button: (props: Props) => Element

export default Button
Run Code Online (Sandbox Code Playgroud)

和以下Button.jsx文件:

import React from 'react'

const Button = ({ text, onClick }) => {
  return <button onClick={onClick}>{text}</button>
}

export default Button
Run Code Online (Sandbox Code Playgroud)

但是 …

javascript declaration typescript reactjs

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

静态删除对象键 JavaScript

我正在使用 TypeScript 和 TSLint,我有以下代码:

var myObj = {}
var id = "key"
myObj[id] = 1
delete myObj[id]
Run Code Online (Sandbox Code Playgroud)

但是我收到了来自 TSLint 的提示: Do not delete dynamically computed property keys. (no-dynamic-delete)

此规则的基本原理(如 TSLint 文档中所述):

删除动态计算的键是危险的,并且没有得到很好的优化。


我的问题是,没有TSLint配置文件中禁用此提示,我应该如何安全和优化删除id的关键myObj

javascript typescript tslint delete-keyword

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

Golang 检查接口类型是否为 nil

在使用 Golang 的json.Unmarshal()函数解组 json 字符串时,我总是将字符串解组为一个map[string]interface{}-我不确定天气是否有更佳的解码 json 方法。

进入正题:

有时 json 的解组类型是nil, not string(或int等)。这总是引起恐慌,说:

接口转换:接口为nil,不是int

如何避免这种恐慌或检查接口的类型是否正确nil

例子:

这是我的问题的示例:https : //play.golang.org/p/0ATzXBbdoS

json interface go

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

Javascript Escape All But Text相关的HTML标签(<h1>,<p>,<img>等)

使用JavascriptjQuery,如何除了内容相关标签(如H1,img等)之外的所有HTML?我已将markdown文本转换为HTML并将其放在div中,但我不希望我的用户编写<script>标签,<div>或任何类型的漏洞.

有没有办法可以安全地在我的网站上使用从markdown转换的html?

(一个很好的例子是stackoverflow,这个文本使用markdown但不允许我利用它<script>alert("Hi");</script>)

html javascript jquery

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

在一个IP上托管多个Golang站点并根据域请求提供服务?

我正在运行安装了Ubuntu的VPS.如何在不指定URL中的端口(xxx.xxx.xxx.xxx:8084)的情况下使用相同的VPS(相同的IP)来为多个Golang网站提供服务?

例如,Golang app 1正在侦听端口8084,Golang app 2正在侦听端口8060.当有人从域请求时,我希望Golang app 1能够在域example1.com和Golang应用2请求时提供服务example2.com.

我相信你可以用Nginx做到这一点但我无法弄清楚如何做到这一点.

port http nginx go

5
推荐指数
2
解决办法
2111
查看次数

Golang MGO-插入或更新无法正常工作

我正在Go中运行一个网站,并且正在使用MGO软件包连接我的MongoDB数据库。

我正在处理用户的登录,并且尝试使用func Upsert()更新用户(如果数据库中存在用户),否则将其插入。

问题是,当我运行Upsert()(下面的代码)时,它将替换所有字段,而不是仅更新第二个参数的当前字段bson.M{}

db.C("users").Upsert(
    bson.M{"email": "someone@gmail.com"}, // Which doucment to upsert
    bson.M{"displayName": "Johhny"}, // What to replace
)
Run Code Online (Sandbox Code Playgroud)

我要解释的视觉示例。

现有的数据库文档:

{
    "_id" : ObjectId("58e7589bab64da55ebcf5d25"),
    "email" : "someone@gmail.com",
    "password" : "",
    "age": 69,
    "displayName" : "Someone!"
}
Run Code Online (Sandbox Code Playgroud)

运行后:

db.C("users").Upsert(
    bson.M{"email": "someone@gmail.com"},
    bson.M{"displayName": "My name was updated"},
)
Run Code Online (Sandbox Code Playgroud)

该文档变为:

{
    "_id" : ObjectId("58e789feab64da55ebcf691c"),
    "displayName" : "My name was updated"
}
Run Code Online (Sandbox Code Playgroud)

当我期望文档成为:

{
    "_id" : ObjectId("58e7589bab64da55ebcf5d25"),
    "email" : "someone@gmail.com",
    "password" : "",
    "age": 69,
    "displayName" …
Run Code Online (Sandbox Code Playgroud)

upsert go mongodb

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

Elixir phoenix设置websocket响应头

如何将Sec-WebSocket-Protocol设置为phoenix websocket中的响应头?

我已经尝试过Plugs将标题字段添加到conn对象中,但它似乎就像它被删除的方式一样.我尝试的另一个选项是通过导入创建自定义websocket Phoenix.Transport.Websocket但最终没有成功.

elixir phoenix-framework

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

Google Datastore节点查询JS中的排序依据和分组依据

我试图在NodeJS中编写数据存储区查询.

我想按时间戳排序,但也只是不同的唯一ID(没有重复),只检索每个唯一ID的最新数据存储项.


例如

USER_ID - TIMESTAMP
10      - 1000
10      - 500
5       - 10
5       - 1500
5       - 50
Run Code Online (Sandbox Code Playgroud)

我希望查询结果

USER_ID - TIMESTAMP
10      - 1000
5       - 1500
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

datastore.createQuery('example')
  .groupBy('USER_ID')
  .order('USER_ID')
  .order('TIMESTAMP')
Run Code Online (Sandbox Code Playgroud)

但它返回的命令数据USER_ID,不TIMESTAMP


这是一个帮助回答问题的pastebin:https://pastebin.com/MQCibmiw

node.js google-cloud-datastore

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

无法使用 phpseclib 类

我已经从 github安装了phpseclib库,我正在尝试使用 PHP 加密密码(用于 Steam 社区)。我可以通过使用 Steam 在他们网站上的 javascript 代码来使用 Javascript 来做到这一点,但我无法使用纯 PHP 加密密码。

Javascript 加密代码:

var RSAPublicKey = function($modulus_hex, $encryptionExponent_hex) {
    this.modulus = new BigInteger( $modulus_hex, 16);
    this.encryptionExponent = new BigInteger( $encryptionExponent_hex, 16);
};

var Base64 = {
    base64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function($input) {
        if (!$input) {
            return false;
        }
        var $output = "";
        var $chr1, $chr2, $chr3;
        var $enc1, $enc2, $enc3, $enc4;
        var $i = 0;
        do {
            $chr1 = $input.charCodeAt($i++);
            $chr2 = $input.charCodeAt($i++);
            $chr3 = $input.charCodeAt($i++); …
Run Code Online (Sandbox Code Playgroud)

php encryption phpseclib

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

如何检查 ResponseWriter 是否已写入

使用 Golang 的net/http包,如何检查是否ResponseWriter已写入?我收到以下错误消息:

http:多个 response.WriteHeader 调用

当然,我可以从我的函数中返回布尔值等,指示我ResponseWriter使用重定向或其他方式写入的天气,我尝试过,但我肯定能够在ResponseWriter使用简单的方法写入之前检查是否已写入。

我正在寻找一个类似于以下内容的函数,我可以在写入之前使用它ResponseWriter

if w.Header().Get("Status-Code") == "" {
    http.Redirect(w, r, "/", http.StatusSeeOther)
} else {
    fmt.Println("Response Writer has already been written to.")
}
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎不起作用...任何人都知道如何检查是否ResponseWriter已写入?

http httpresponse go

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