小编Kri*_*itk的帖子

如何使用 TypeScript 从接口动态推导类型?

TypeScript Docs描述了如何使用函数重载。

以下用例是静态定义的重载函数的示例。

interface MyObject {
    a: boolean
    b: number
}

const myObject: MyObject = {
    a: true,
    b: 1
}

function getValueOfMyObject (key: 'a'): boolean
function getValueOfMyObject (key: 'b'): number
function getValueOfMyObject (key: keyof MyObject): boolean | number {
    return myObject[key]
}
Run Code Online (Sandbox Code Playgroud)

所以,

getValueOfMyObject('a')将有一个boolean作为返回类型,并且

getValueOfMyObject('b')将有一个numberas 返回类型。

对于我的用例,我不想为 MyObject 接口中的每个新属性输入更多的重载。我正在寻找具有动态返回类型的解决方案。TypeScript 根据 MyObject 接口自动推导返回类型的一种方式。就像是:

function getValueOfMyObject (key: keyof MyObject): typeof MyObject[key] {
    return myObject[key]
}
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不是正确的语法。有没有办法用 TypeScript 实现这一点?

types typescript

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

Room SQLite 数据库 - 删除所有 LIKE %:param%

我有一个 Room 问题,我无法在其他地方找到帮助 - 在 SQLite 中使用“LIKE”时通常用于匹配任意数量字符的“%”不适用于我们正在使用的 Room 删除查询我团队的项目。

在我们的一个 DAO 中,我们有一个在 Kotlin 中定义为字符串的删除查询:

const val DELETE_BY_RESERVATION_CODE = "DELETE FROM ${TdaRoomDatabase.TABLE_REQUESTS} WHERE uri LIKE :reservationCode"
Run Code Online (Sandbox Code Playgroud)

以及同一个 DAO 中的 deleteRequest:

@Query(DELETE_BY_RESERVATION_CODE)
fun deleteRequest(reservationCode: String)
Run Code Online (Sandbox Code Playgroud)

但是,在 ':reservationCode' 参数引用周围添加百分比符号后,我们得到以下错误:

在输入“DELETE FROM requests WHERE uri LIKE %”处没有可行的替代方案

有没有人知道在 Room DB 查询中使用“LIKE”时如何使用百分比符号?我和我的团队(不精通 SQL)希望它的行为像 SQLite,但事实并非如此!

 

sqlite android kotlin android-room

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

如何生成1到100万之间的随机数?

我想创建一个函数,生成一个从1到百万的随机数..并把它放在一个形式

"You have won [ random value ] points. Congratulations."

并以某种方式将其保存到变量"x",我可以在文本框中调用所以在文本框中的值如下:

<input class="textbox1" type="text" readonly value="[X]"> 
<p> [X] </p>
<a href="mywebsite" data-text="[X]"></a>
Run Code Online (Sandbox Code Playgroud)

所以我可以在不同的地方使用它,我怎么能这样做?

html javascript php random jquery

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

即使已分配号码,typeof name也会返回字符串

这真的撕裂了我的JS概念.这有什么不对的?

const NAME = 'chusss';
var name = 123;
console.log(typeof name); // string, wasnt it supposed to print number?
console.log(name); // 123
Run Code Online (Sandbox Code Playgroud)

javascript typeof

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

对象未被读取node.js

我有和反对 db_parsed

我跑的时候 console.log(JSON.stringify(db_parsed, null, 4))

结果是:

{
    "data": [
        [
            {
                "name": "Me",
                "age": 23,
                "sex": "M"
            },
            {
                "name": "Wonderwoman",
                "age": 22,
                "sex": "F"
            }
        ],
        [
            {
                "name": "ALbert The Man",
                "age": 22,
                "sex": "M"
            }
        ],
        [
            {
                "name": "Leonard Johnson",
                "age": 23,
                "sex": "M"
            }
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是当我跑 console.log(db_parsed.data.filter(obj => obj.age === 22))

结果是 []

为什么?我错过了什么?我该如何解决?

javascript arrays object filter node.js

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

如何获取动态属性值

<ul class="dropdown-menu" id="parent">      
@foreach($cat as $category)

    <li class="dropdown-submenu">
        <a id={{$category->id}}>{{$category->category_name}}</a>
    </li>

@endforeach
Run Code Online (Sandbox Code Playgroud)

这是我的脚本它总是给我相同的值1

我想永远改变来自数据库的价值

$("#parent li a").click(function(){
    var id = $('#parent li a').attr('id');
    alert(id);
});
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery laravel

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