小编Dan*_*elM的帖子

TypeScript条件类型 - 过滤掉只读属性/仅选择必需的属性

在TypeScript中使用新的条件类型(或者可能是另一种技术),有没有办法根据修饰符从界面中选择某些属性?例如,有......

interface I1 {
    readonly n: number
    s: string
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个基于前一个类型的新类型,如下所示:

interface I2 {
    s: string
}
Run Code Online (Sandbox Code Playgroud)

typescript conditional-types typescript2.8

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

导入Highcharts和highcharts-more(AngularJS 1.5 + TypeScript + webpack)

我正在尝试在使用webpack,TypeScript和AngularJS(版本1.5)的项目中使用Highcharts及其一些扩展(如"highcharts-more").

我已经通过npm(https://www.npmjs.com/package/highcharts)安装了Highcharts ,但是我无法导入随附的扩展程序.

我正在做的实际技巧是在webpack配置文件中设置一些全局变量

plugins: [
    new webpack.ProvidePlugin({
        Highcharts: 'highcharts',
        HighchartsMore: 'highcharts/highcharts-more',
        HighchartsExporting: 'highcharts/modules/exporting'
    })
]
Run Code Online (Sandbox Code Playgroud)

并手动扩展Highcharts

HighchartsMore(Highcharts);
HighchartsExporting(Highcharts);
Run Code Online (Sandbox Code Playgroud)

两者之间没有任何进口.有了这个非理想的解决方案,TypeScript抱怨是因为

error TS2304: Cannot find name 'HighchartsMore'
error TS2304: Cannot find name 'HighchartsExporting'
Run Code Online (Sandbox Code Playgroud)

特别是对于Highcharts,没有错误.我想这与Highcharts是我唯一能够导入的事实有关

import * as Highcharts from 'highcharts';
Run Code Online (Sandbox Code Playgroud)

我可以用webpack配置中的Highchart全局声明替换它.我想要的是以干净的方式导入每个模块,例如

import {HighchartsMore} from 'highcharts-more';
Run Code Online (Sandbox Code Playgroud)

非常感谢任何想法.

highcharts angularjs typescript webpack

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

Spring Boot集成测试无法访问application.properties文件

我有一些带有注释的类@RestController,我正在尝试使用MockMvc该类进行测试.端点从Web应用程序正确响应,但在运行测试时出现以下错误(来自IntelliJ IDEA):

java.lang.IllegalArgumentException: Could not resolve placeholder
'spring.data.rest.base-path' in string value "${spring.data.rest.base-path}/whatever"
Run Code Online (Sandbox Code Playgroud)

这是application.properties文件的样子:

spring.data.rest.base-path=/api
spring.profiles.active=dev
...
Run Code Online (Sandbox Code Playgroud)

我还有一个application-dev.properties带有附加(不同)属性的文件.

这是测试类的注释方式:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest // Also tried: @WebAppConfiguration
@ActiveProfiles("dev")
// Also tried: @PropertySource("classpath:application.properties")
// Also tried: @TestPropertySource("classpath:application.properties")
public class MyRestControllerTest {
    ...
}
Run Code Online (Sandbox Code Playgroud)

另一方面,这是REST控制器的实现方式(使用有问题的属性):

@RestController
@RequestMapping("${spring.data.rest.base-path}/whatever")
public class MyRestController {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这就是应用程序主类的外观:

@SpringBootApplication(scanBasePackages = {...})
@EnableJpaRepositories({...})
@EntityScan({...})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,这是项目结构的(子集): …

java junit spring integration-testing spring-boot

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